class Solution {
public:
    vector<int> missingTwo(vector<int>& nums) {
        //思路转换一下我们把nums和nums补全之后所有数组看为一个整体
        //这样我们消失的数字在所有数种只出现了一次其他数出现了两次
        int temp=0;
        int n=nums.size();
        for(int i=1;i<=n+2;i++) temp^=i;
        for(auto&ch:nums)temp^=ch;
        cout<<temp<<endl;
        int index=0;
        for(index=0;index<32;index++)
        {
            if(((temp>>index)&1)==1) 
            {
                break;
            }
        }
        int ret1=0,ret2=0;
        for(int i=1;i<=n+2;i++)
        {
            if(((i>>index)&1)==1)
            {
                ret1^=i;
            }
            else
            {
                ret2^=i;
            }
        }
        for(auto&ch:nums)
        {
             if(((ch>>index)&1)==1)
            {
                ret1^=ch;
            }
            else
            {
                ret2^=ch;
            }
        }
        return {ret1,ret2};
    }
};